// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Пин Ап Казино Официальный Сайт – Играть в Онлайн Казино Pin Up – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Пин Ап Казино Официальный Сайт – Играть в Онлайн Казино Pin Up

В наше время интернета и онлайн-игр, казино Pin Up является одним из самых популярных и надежных онлайн-казино, которые предлагают игрокам широкий спектр игр и выгодные условия для игры.

Pin Up Casino – это официальный сайт, который был запущен в 2016 году и с тех пор стал одним из лидеров в мире онлайн-казино. Казино Pin Up предлагает игрокам более 3 000 игр, включая слоты, карточные игры, рулетку, бинго и другие.

Один из главных преимуществ казино Pin Up – это его официальный статус, что обеспечивает игрокам безопасность и прозрачность всех операций. Казино Pin Up имеет лицензию на проведение игорной деятельности, выдана в соответствии с законодательством Мальты, что является одним из самых строгих и надежных регуляторов в мире.

Кроме того, казино Pin Up предлагает игрокам широкий спектр бонусов и акций, которые помогут им начать играть и получать выгоды. Казино Pin Up также предлагает игрокам возможность играть на деньги, а также на тестовые деньги, что позволяет им попробовать игры и стратегии без риска.

Кроме того, казино Pin Up имеет мобильную версию, что позволяет игрокам играть на любом устройстве, где есть интернет. Это делает казино Pin Up доступным для игроков из всего мира.

Pin Up Casino – это лучшее онлайн-казино для игроков, которые ищут безопасность, прозрачность и выгодные условия для игры.

Если вы ищете онлайн-казино, где можно играть в игры, которые вам нравятся, и получать выгоды, то Pin Up Casino – это ваш выбор.

Преимущества игры в Pin Up Casino

Один из главных pin up казино преимуществ игры в Pin Up Casino – это огромный выбор игр. Здесь можно найти игры от известных разработчиков, таких как NetEnt, Microgaming и другие. Игроки могут выбрать игру, которая им понравится, и начать играть.

Еще одним преимуществом является безопасность и надежность официального сайта Pin Up Casino. Казино использует современные технологии для обеспечения безопасности игроков и защиты их данных.

Кроме того, Pin Up Casino предлагает игрокам различные бонусы и акции, которые могут помочь им начать играть или увеличить свои выигрыши. Игроки могут получать бонусы за регистрацию, за депозит и за участие в турнирах.

В целом, Pin Up Casino – это отличное место для игроков, которые ищут развлекательные игры и реальные выигрыши. Официальный сайт Pin Up Casino – это место, где игроки могут насладиться игрой и получить реальные выигрыши.

Pin Up Casino: Official Website and Online Casino Experience

Pin Up Casino – это официальный онлайн-казино, которое предлагает игрокам из России и других стран мира широкий спектр игровых автоматов, рулеток, покера и других азартных игр. В Pin Up Casino можно играть на официальном сайте или через мобильное приложение, что обеспечивает доступность игрокам в любое время и из любой точки мира.

Официальный сайт Pin Up Casino – это место, где игроки могут найти все, что нужно для комфортной игры. Здесь можно найти информацию о различных играх, правилах и условиях игры, а также о различных акциях и промокодах. Сайт регулярно обновляется, чтобы обеспечить игрокам доступ к новым играм и функциям.

В Pin Up Casino есть все, что нужно для комфортной игры: безопасность, конфиденциальность и доступность. Казино использует современные технологии для обеспечения безопасности игроков, а также для защиты их личных данных. Игроки могут быть уверены в том, что их данные будут защищены и не будут использоваться для каких-либо других целей.

Кроме того, Pin Up Casino предлагает игрокам широкий спектр бонусов и акций, которые помогут им начать игру с преимуществом. Игроки могут получать бонусы за регистрацию, за депозит и за участие в различных акциях. Это поможет им начать игру с преимуществом и увеличить свои шансы на выигрыш.

В целом, Pin Up Casino – это официальный онлайн-казино, которое предлагает игрокам из России и других стран мира комфортную и безопасную игру. Официальный сайт Pin Up Casino – это место, где игроки могут найти все, что нужно для комфортной игры, и начать играть с преимуществом.

Registration and Login: How to Start Playing

Before you can start playing at Pin Up Casino, you need to register and log in to your account. This process is quick and easy, and we’ll guide you through it step by step.

Registration

To register at Pin Up Casino, follow these simple steps:

  • Go to the Pin Up Casino website and click on the “Register” button.
  • Fill in the registration form with your personal details, including your name, email address, and password.
  • Choose your preferred currency and confirm that you are at least 18 years old.
  • Read and agree to the terms and conditions of the casino.
  • Click on the “Register” button to complete the registration process.

Once you’ve registered, you’ll receive an email with a verification link. Click on this link to activate your account and start playing.

Login

To log in to your Pin Up Casino account, follow these simple steps:

  • Go to the Pin Up Casino website and click on the “Login” button.
  • Enter your email address and password in the designated fields.
  • Click on the “Login” button to access your account.
  • If you’ve forgotten your password, you can reset it by clicking on the “Forgot Password” link and following the instructions.

    That’s it! You’re now ready to start playing at Pin Up Casino. Remember to always gamble responsibly and within your means.

    Games and Bonuses: What to Expect

    When you step into the world of Pin Up Casino, you can expect a thrilling experience filled with a wide range of games and bonuses. As one of the most popular online casinos, Pin Up Casino offers a vast collection of games from top-notch providers, ensuring that you’ll never run out of options.

    With over 3,000 games to choose from, you’ll be spoiled for choice. From classic slots to table games, video poker, and live dealer games, there’s something for every taste and preference. The games are available in both demo and real-money modes, allowing you to try before you buy or play for real cash.

    Slots Galore

    Pin Up Casino’s slot collection is truly impressive, with hundreds of titles to pick from. You’ll find classic slots, video slots, and even progressive jackpot games. The slots are designed to provide an immersive experience, with stunning graphics, animations, and sound effects. Whether you’re a fan of fruit machines, video slots, or 3D slots, you’ll find something that suits your style.

    But that’s not all – Pin Up Casino also offers a range of table games, including blackjack, roulette, baccarat, and more. These games are designed to provide a realistic casino experience, with realistic graphics and sound effects. You can even play with real dealers in the live dealer section, giving you a taste of the real casino experience from the comfort of your own home.

    Bonuses and Promotions

    Pin Up Casino knows how to treat its players right, with a range of bonuses and promotions to keep you coming back for more. From welcome bonuses to reload bonuses, free spins, and cashback offers, there’s always something to look forward to. The bonuses are designed to provide an extra boost to your gameplay, giving you more chances to win big.

    But that’s not all – Pin Up Casino also offers a loyalty program, where you can earn points and rewards for playing your favorite games. The more you play, the more you’ll earn, and the more you’ll be able to redeem your points for real cash or other rewards. It’s a great way to get even more value from your gameplay.

    In conclusion, Pin Up Casino is a world of excitement and entertainment, with a vast range of games and bonuses to keep you coming back for more. Whether you’re a seasoned player or just starting out, you’ll find something that suits your style and preferences. So why wait? Sign up today and start playing!

    Design and Develop by Ovatheme